iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
Security

建構安全軟體開發系列 第 20

建構安全軟體開發 EP 20

  • 分享至 

  • xImage
  •  

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

本篇是 建構安全軟體開發 系列文的 EP20。


威脅模型的進程

在 OWASP 的描述當中,可透由以下的 For Question Framework 來詰問是否做到相關的 Threat Modeling 處理:

  • 我們正在做什麼?
  • 什麼可能出錯?
  • 對此如果我們能做什麼?
  • 我們是否已做得好了?

而由於可以有各式各樣的方式或技術回答上述的問題,所以不存在 "正確" 解,只存在 "適合" 解。

可參考 OWASP: Threat Modeling 文章內容。

而由於現今主流的 SDLC,已不再是 Waterfall 的概念,取而代之的是在一定的進程時間內,進行產品/服務的發佈或更新,加速使用者取得應用所產生的價值,因此 Threat Modeling 在這樣的 SDLC 方法論(如: Agile、DevOps...等)當中也應有所調整與應對。

In Agile

概念上 Agile 的進程模型如下:
Agile Development Process
上圖取自 Lean – Agile – Startup – ITIL What if everything was linked 文章。

在進行每個 Sprint 的過程當中,皆須進行 Threat Modeling (TM)的分析,並且確認該 Sprint 的 Definition of Done (DoD) 的時候是否有對應該 Sprint 分析的 TM:
Threat Modeling for Agile
上圖取自 SAFECode: Tactical Threat Modeling 第 22 頁。

In DevOps

而 DevOps 是當前面對快速變動的環境所發展出因應的方法,而在 DevOps 當中很重要的一環是 CI/CD 的部分,要達成 CI/CD 必然需要自動化方案,透過對應的安全性檢查工具以及威脅模型分析檢驗,在 CI/CD 自動化方案當中進行檢查。

其 CI/CD Security Pipeline 的作為處理方針整理如下:

  1. Map and Model Threats
  2. Safeguard Before Committing
  3. Review Committed Code
  4. Secure your Git
  5. Check for open-source vulnerabilities
  6. Automate with IaC
  7. Monitor After Deployment
  8. Separate Tasks and Enforce Permissions
  9. Keep Credentials Safe
  10. Diligently Clean Up

上述整理參考自 CI/CD Security - How to Secure Your CI/CD Pipeline 的第三節論述。

而對應其活動的處理動作大多都可以透過當前的 CI/CD 平台工具進行進行整合,例如 GitHub Security、Securing Azure Pipelines...等。

GitHub Security
上圖取自 GitHub Security 網站頁面。

可攻擊面積評估

  1. 定義其下的相關可攻擊面積
    • 功能
    • 元件
    • 服務
  2. 識別與對應相關的可攻擊面積
  3. 量測可攻擊面積之 RASQ (Relative Attack Surface Quotient)
  4. 管理可攻擊面積
    • Secure by Design
    • Secure by Default <--- 開發當下可以做到的
    • Secure by Deployment <--- 維運團隊可以做的,Ex: 定期弱點掃描

可攻擊面積分析工具

漏洞掃描工具對於找出可攻擊面積的過程是非常有用的,以下介紹幾個可用的工具:

偏 Web system 的分析:

針對 Windows 作業系統分析工具

威脅理解與風險評估

經過各項工具掃描後,不代表高風險就一定有漏洞,但在風險越高威脅就要越先評估其影響性,並且規畫該如何進行其威脅的排除至 剩餘風險 EP13



上一篇
建構安全軟體開發 EP 19
下一篇
建構安全軟體開發 EP 21
系列文
建構安全軟體開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言